package com.itheima.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Date;
import java.util.Map;

public class JwtUtils {

    private static final String SIGN_KEY = "hpljs";
    private static final Long EXPIRE = 7200000L;

    public static String generateJwt(Map<String, Object> claims) {
        String jwt = Jwts.builder()
                //设置头部中的签名算法和密钥
                .signWith(SignatureAlgorithm.HS256, "hpljs")
                //设置载体，存放用户信息
                .addClaims(claims)
                //设置过期时间
                .setExpiration(new Date(System.currentTimeMillis() + EXPIRE))
                .compact();
        return jwt;
    }

    public static Claims parseJwt(String jwt) {
        Claims claims = Jwts.parser()
                //生成令牌使用的密钥
                .setSigningKey(SIGN_KEY)
                //生成的令牌
                .parseClaimsJws(jwt)
                .getBody();
        return claims;
    }
}
